// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码，建议反馈是我们前进的动力
// | gitee下载：https://gitee.com/likeshop_gitee
// | github下载：https://github.com/likeshop-github
// | 访问官网：https://www.likeshop.cn
// | 访问社区：https://home.likeshop.cn
// | 访问手册：http://doc.likeshop.cn
// | 微信公众号：likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用，未经许可不能去除前后端官方版权标识
// |  likeshop系列产品收费版本务必购买商业授权，购买去版权授权后，方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的，任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------

import {
	silentLogin
} from '@/api/app';
import {
	isWeixinClient,
	currentPage,
	trottle
} from './tools'
import store from '@/store'
import Cache from './cache'
import {
	BACK_URL,
	INVITE_CODE,
	DISTRIBUTION,
	NAVIGATIONMENU,
	MYDISTRIBUTION,
	WECHATSCENECODE
} from '@/config/cachekey'
import {bindSuperior} from '@/api/user'
import wechath5 from './wechath5'
import {router} from '@/router'

// 获取登录凭证（code）

export function getWxCode() {
	return new Promise((resolve, reject) => {
		uni.login({
			success(res) {
				resolve(res.code);
			},

			fail(res) {
				reject(res);
			}

		});
	});
}
//小程序获取用户信息
export function getUserProfile() {
	return new Promise((resolve, reject) => {
		uni.getUserProfile({
			desc: '获取用户信息，完善用户资料 ',
			success: (res) => {
				resolve(res);
			},
			fail(res) {}

		})
	})

}

//小程序静默授权

export async function wxMnpLogin() {
	const code = await getWxCode()
	const {
		code: loginCode,
		data: loginData
	} = await silentLogin({
		code:code,
		wechat_scene_code:Cache.get(WECHATSCENECODE),
	})
	console.log('====login.js===wxMnpLogin=====silentLogin======loginData================');
	console.log(loginData)
	const {
		options,
		onLoad,
		onShow,
		route
	} = currentPage()
	store.commit('setConfigCode',loginCode)
	
	console.log('=======wxMnpLogin===loginData======');
	console.log(loginData);
	//login 对应方法是 app.js的 mutations的 login(state, opt)
	store.commit('login', loginData)
	//当前所在的分销店信息
	Cache.set(DISTRIBUTION, loginData.distribution)
	//依据登录信息返回导航栏
	Cache.set(NAVIGATIONMENU, loginData.navigation_menu)
	//我的分销店信息
	Cache.set(MYDISTRIBUTION, loginData.my_distribution)
	
	
	if (loginData.token && !loginData.is_new_user) {
	// Cache.set(INVITE_CODE, loginData.distribution.invite_code)
		
		// 绑定邀请码
		/* const inviteCode = Cache.get(INVITE_CODE)
		if (inviteCode) {
			bindSuperior({code: inviteCode})
		} */
		// 刷新页面
		onLoad && onLoad(options)
		onShow && onShow()
	} else{
		store.commit('setDistribution', loginData)
		store.commit('setNavigationMenu', loginData.navigation_menu)
	}
	store.commit('showLoadingFun')
	if (loginCode != 1) {
		uni.showToast({
			title: loginData.msg,
			icon: "none"
		})
		return
	}
}
export const toLogin = trottle(_toLogin, 1000)
function _toLogin() {
	console.log('=====toLogin========');
	//#ifdef  MP-WEIXIN
	wxMnpLogin()
	// #endif
	//#ifndef MP-WEIXIN
	const {currentRoute} = router
	if(currentRoute.meta.auth) {
		router.push('/pages/login/login')
	}
	// #endif
} 